/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package py.gestionpymes.seguridad.web;

import py.gestionpymes.seguridad.servicios.UsuarioDAO;
import py.gestionpymes.seguridad.persistencia.Usuario;
import py.gestionpymes.utils.web.JsfUtil;
import java.io.Serializable;
import javax.ejb.EJB;
import javax.enterprise.context.SessionScoped;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;
import javax.servlet.http.HttpSession;

/**
 *
 * @author cromero
 */
@Named
@SessionScoped
public class Autenticador implements Serializable {

    @Inject
    private Credencial credencial;
    private boolean logeado;
    @EJB
    private UsuarioDAO usuarioDAO;

    public boolean isLogeado() {
        return logeado;
    }

    public void setLogeado(boolean logeado) {
        this.logeado = logeado;
    }

    public String login() {
        Usuario u = usuarioDAO.find();
        System.out.println("Encontre usuario? : " + u);
        if (u != null && Encryptador.verica(credencial.getUsuario().getPlainClave(), u.getClave())) {
            credencial.setUsuario(u);
            logeado = true;
         
            JsfUtil.redirect("home");
            JsfUtil.addSuccessMessage("¡Bienvenido "+ u.getNombre() +"!");
        } else {
            logeado = false;
            JsfUtil.addErrorMessage("Falló el ingreso");
        }

        return null;
    }

    public String logout() {
        logeado = false;
        FacesContext facesContext = FacesContext.getCurrentInstance();
        HttpSession httpSession = (HttpSession) facesContext.getExternalContext().getSession(false);
        httpSession.invalidate();
        toLogin();
        return null;
    }

    public String toLogin() {
        JsfUtil.redirect("login");
        return null;
    }
}
